%\setcounter{chapter}{1}

\chapter{相关技术概述}
\label{chap:RelatedWork}

\section{渲染方程}

为了模拟场景中的自然光照现象，描述光照的整个过程，研究者们建立了很多的光学模型，例如Phong光照模型等。在此基础之上，Kajiya于
1986年提出渲染方程理论，统一了所有的图形学光照模型，可以描述几乎所有的光学现象,是全局光照算法的理论基石。如图\ref{fig:renderequation}所示，
渲染方程表示物体表面某点的出射光等于其自身所发出的光与半球上方所有入射光之和，其中入射光的贡献受其方向与物体表面法线夹角的影响。

\begin{figure*}[h]
    \centering
    \includegraphics[width=\linewidth]{Figures/chapter_2/renderequation.png}
    \caption{渲染方程图例}
    \label{fig:renderequation}
  \end{figure*}

渲染方程的数学形式表示如下：

\begin{equation}
    L_{0}(p,\omega_{0})=L_{e}(p,\omega_{0})+\int_{\Omega }f_{r}(p,\omega_{i},\omega_{0})L_{i}(p,\omega_{i})n\cdot w_{i}d\omega_{i} 
\end{equation}

$L_{0}(p,\omega_{0})$表示点p在$\omega_{0}$方向出射光线的辐射亮度；

$L_{e}(p,\omega_{0})$表示p点在$\omega_{0}$自身所发出光线的辐射亮度；

$\int_{\Omega}d\omega_{i}$表示以p点为中心的半球所有入射光线的方向；

$f_{r}(p,\omega_{i},\omega_{0})$表示双向反射分布函数（BRDF），描述了物体的材质等反射与折射属性，可近似求出每一束光线对出射
光线的贡献程度；

$L_{i}(p,\omega_{i})$表示从$\omega_{i}$方向照射至p点的光线的辐射亮度；

$n\cdot w_{i}$表示$\omega_{i}$方向的入射光与表面法线n的夹角，夹角越大，入射光贡献越小。

\section{基于物理的渲染}
基于物理的渲染（Physically Based Rendering，PBR）首先由\citet{2004Physically}提出，并由\citet{2012Physically}进一步完善
设计。它是指一系列基于现实世界物理原理的渲染技术的集合。由于PBR使用一种更为符合物理学规律的方式来模拟光线，故它的光照效果相比
于传统光照模型来说更为真实。PBR光照模型主要包含以下三个条件：
\begin{enumerate}
    \item 基于微平面（Microfacet）的表面模型。
    \item 能量守恒。
    \item 应用基于物理的BRDF。
\end{enumerate}

\subsection{微平面表面模型}
传统光照模型一般以像素为最小粒度，并认为每个像素完全光滑，仅有一条法线。但是现实中的微观尺寸远小于一个像素，以像素为单位处理光
照会损失很多物理细节。因此便有了微平面模型。

微平面模型从微观几何的角度出发，认为任何平面达到微观尺度后均可以由被称为微平面的的细小镜面来描绘。微平面的尺度远小于观察尺度
（即分辨率），但大于可见光波长的尺度。根据物体表面粗糙度的不同，这些微平面的取向可以相当不一致，如图\ref{fig:Mircofacet}所示。
\begin{figure*}[h]
    \centering
    \includegraphics[width=\linewidth]{Figures/chapter_2/Mircofacet.png}
    \caption{不同粗糙度下物体表面微平面取向排列}
    \label{fig:Mircofacet}
\end{figure*}

如图\ref{fig:MicrofacetReflection},对于入射光线来说，越是粗糙的表面，由于其微平面排列混乱无序，法线朝向没有规则，因此便会产生
一个分布范围广阔的反射。与之相反，越是光滑的表面，入射光线便更趋向于向同一个方向反射，产生更锐利的高光。

由于微平面尺度远小于像素尺度，因此无法使用像素表示。为了表示物体表面的粗糙程度，需要借助统计学的方法，假设一个粗糙度（Roughness）
参数来估算微平面的粗糙度。其表示物体表面半程向量$\emph{h}$与微平面平均取向一致的概率。半程向量是位于光线向量$\emph{l}$与视线向
量$v$之间的中间向量（HalfWay Vector）。半程向量与微平面平均取向越是一致，镜面反射效果就越是锐利。如此便可估量微平面法线取向，精
确地表达物体表面的诸多细节。

\begin{figure*}[htbp]
    \centering
    \includegraphics[width=\linewidth]{Figures/chapter_2/MicrofacetReflection.png}
    \caption{不同粗糙度下的微平面光线反射}
    \label{fig:MicrofacetReflection}
\end{figure*}

\subsection{能量守恒}

微平面理论遵循着能量守恒定律：出射光的能量永远不能超过入射光的能量（光源除外）。通常光滑表面的镜面反射会更锐利，而粗糙表面的反射会
更昏暗。这是因为随着物体表面粗糙度的上升，镜面反射的范围会增加，根据能量守恒定律，其出射光线亮度会随之降低。
为了遵循能量守恒定律，需要对漫反射与镜面反射做出严格的区分。当一束光线照射至物体表面，一部分光线直接反射，这便是镜面反射，而剩余的
另一部分光线随着介质的不同而各有反应。对于金属介质，光线折射后便被全部吸收；对于非金属介质，光线折射进物体内部而后离开，构成物体表
面漫反射颜色。反射光线与折射光线是互斥的关系，被物体表面反射的光线不会再被吸收。因此，折射光的能量便是反射光线后剩余的所有能量。


\subsection{基于物理的BRDF}

BRDF用来描述每一束入射光线在给定的物体表面上如何影响最终的出射光线,可以近似地求出给定的表面某点上入射光线经过反射后在各个出射方向上
分布。有很多种BRDF都能近似得出物体表面对于光的反应，但最通用的是一种被称为Cook-Torrance BRDF的模型。

Cook-Torrance BRDF兼有漫反射和镜面反射两个部分：
\begin{equation}
    f_{r}=k_{d}\frac{c}{\pi}+k_{s}\frac{DFG}{4(w_{0}\cdot n)(w_{i}\cdot n)}
\end{equation}
其中，$k_{d}$是入射光线中被折射部分的能量所占的比率，$k_{s}$是被反射部分的比率。其中D代表正态分布函数(Normal Distribution Function)，
F代表菲涅尔方程(Fresnel Rquation)，G代表几何函数(Geometry Function)。

法线分布函数表示在表面粗糙度的约束下，微平面法线向量与半程向量方向相同的概率，这是用来估算微平面的主要函数。目前常用的NDF函数是
Trowbridge-Reitz GGX分布：
\begin{equation}
    NDF_{GGXTR}(n,h,\alpha)=\frac{\alpha^{2}}{\pi((n\cdot h)^{2}(\alpha^{2}-1)+1)^{2}}
\end{equation}
其中，$\emph{h}$表示视线向量和光线向量中间的半程向量，用来与平面上微平面法线做比较,$\emph{a}$表示表面粗糙度。

几何遮蔽函数从统计学上描述了微平面间相互遮蔽的比率。几何函数同样把粗糙度参数作为输入，当一个平面相越粗糙的时候，平面表面上的微平
面就越有可能挡住其他的微平面从而减少表面所反射的光线。最常使用的几何函数是Schlick-GGX:
\begin{equation}
    G_{SchlickGGX}(n,v,k)=\frac{n\cdot v}{(n\cdot v)(1-k)+k}
\end{equation}

菲涅尔方程表示入射光线被反射和折射的比率，其受观察方向约束。随着观察方向与表面法线的夹角增大（不超过９０度），反射光亮度也就越强。
由菲涅尔方程和能量守恒，可以分别求得入射光被反射和折射的占比。菲涅尔方程一般使用Fresnel-Schlick方法：
\begin{equation}
    F_{Schlick}(h,v,F_{0})=F_{0}+(1-F_{0})(1-(h\cdot v))^{5}
\end{equation}


$F_{0}$表示物体表面的基础反射率，此时观察方向与表面法线重合，即垂直看向物体。




